A packet-data communication system often has a layered structure. For example, the ISO OSI model has the following seven-layer structure: Physical (Layer 1), Data Link (Layer 2), Network (Layer 3), Transport (Layer 4), Session (Layer 5), Presentation (Layer 6) and Application (Layer 7).
Usually, different layers in the structure use different error-checking techniques, although some layers do not independently check for errors at all. One popular error-control technique, is automatic re-transmission request (ARQ), in which a packet of data is retransmitted if the packet is in error.
For certain upper layers where the error rate is low, only a negative acknowledgement signal (NAK) is transmitted from the receiver back to the transmitter when the receiver determines that a particular packet has been received in error. This often is efficient, as errors tend to occur significantly less frequently than correct receptions at the higher levels. Such an ARQ technique is called NAK-based.
On the other hand, for a lower layer that has an unreliable communication medium (e.g., wireless) there often is a higher chance that a lower-layer packet will be received in error. To reduce retransmission delays, in many implementations the receiver's lowest layer (e.g., the physical layer) acknowledges the reception of each packet, whether it is success (ACK) or failure (NAK), by transmitting the appropriate signal at a specifically allocated time slot that is usually a fixed period of time after the transmission of the packet.
One example of a communications system that employs a layered structure is the code division multiple access (CDMA) IS2000 EVDO high-rate packet data wireless system. The communications layers in this system, together with the protocols executed in each, are defined in 3GPP2 C.S0024-A, Ver 1.0, cdma2000 High Rate Packet Data Air Interface Specification, March, 2004, as shown in FIG. 1.
In IS2000 EVDO, the physical layer transmission is over a mobile wireless environment and can have an error rate of about 10%. The ACK/NAK signal is pre-scheduled during a fixed time interval after the receiver receives the packet, so the transmitter knows a short period of time after the packet has been transmitted whether the packet has been transmitted successfully. If a NAK is received, the transmitter will retransmit the erroneous packet (with possible modification of the encoding pattern) until it has been retransmitted a certain number of times. As a result of this ARQ protocol, the overall error rate typically can be reduced to around 1%.
On the application layer of IS2000 EVDO, there is a Radio Link Protocol (RLP) that performs further ARQ. It is purely NAK-based, i.e., the transmitter will know that a packet is in error only if it receives a NAK signal. Once it receives a NAK for a certain packet, the transmitter RLP typically will send the NAK'ed erroneous data if it hasn't done so previously, and it can discard all packets transmitted prior to the packet to which the received NAK signal pertains, as those packets either have been successfully received or have been retransmitted once already. The RLP at the receiver side guarantees that only one NAK signal will be sent for each error packet and such NAK signals will be sent with respect to the packets in the order of their sequence numbers.
Several of the transmitter layers maintain a retransmission buffer for storing and then, if it is determined that the subject data were not accurately received, retransmitting data. As noted above, different layers often use different types of error-checking techniques for this purpose. In general, on each layer the receiver has various ways to detect error transmission and create the ACK or NAK signal or message. One way is by performing CRC (cyclic redundancy check) that is built into the current layer data packet. Another way is by comparing the received data sequence, e.g., when the data sequence is received discontinuously, then the missing sequence indicates missing (erroneous) data packet. The second method is used by RLP in IS2000 EVDO.